home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CICA 1993 April
/
CICA MS Windows - April 1993.iso
/
unzipped
/
misc
/
iv26_w30
/
intervie
/
frame.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-11-27
|
4KB
|
134 lines
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* A frame surrounds another interactor.
*/
#ifndef frame_h
#define frame_h
#include <InterViews/scene.h>
class Frame : public MonoScene {
public:
Frame(Interactor* = nil, int width = 1);
Frame(const char*, Interactor* = nil, int width = 1);
protected:
int left:8, bottom:8, right:8, top:8;
Frame(Interactor*, int, int, int, int);
Frame(const char*, Interactor*, int, int, int, int);
virtual void Reconfig();
virtual void Resize();
virtual void Redraw(Coord, Coord, Coord, Coord);
private:
void Init(Interactor*, int, int, int, int);
};
class ShowFrame : public Frame {
public:
ShowFrame(Interactor* i = nil, int width = 1) : Frame (i, width) { Init(); }
ShowFrame(
const char* name,
Interactor* i = nil, int width = 1
) : Frame (name, i, width) { Init(); }
virtual void Handle(Event&);
virtual void HandleInput(Event&);
virtual void InsideFrame(boolean);
protected:
ShowFrame(
Interactor* i, int l, int b, int r, int h
) : Frame (i, l, b, r, h) { Init(); }
ShowFrame(
const char* name,
Interactor* i, int l, int b, int r, int h
) : Frame (name, i, l, b, r, h) { Init(); }
private:
void Init();
};
class Banner;
class TitleFrame : public ShowFrame {
public:
TitleFrame(Banner*, Interactor*, int width = 1);
TitleFrame(const char*, Banner*, Interactor*, int width = 1);
virtual void InsideFrame(boolean);
protected:
Banner* banner;
virtual Interactor* Wrap(Interactor*);
private:
void Init(Banner*, Interactor*);
};
class BorderFrame : public ShowFrame {
public:
BorderFrame(Interactor* = nil, int width = 1);
BorderFrame(const char*, Interactor* = nil, int width = 1);
virtual void InsideFrame(boolean);
protected:
virtual void Redraw(Coord, Coord, Coord, Coord);
private:
boolean normal;
void Init();
};
class ShadowFrame : public Frame {
public:
ShadowFrame(Interactor* = nil, int h = 1, int v = 1);
ShadowFrame(const char*, Interactor* = nil, int h = 1, int v = 1);
protected:
virtual void Redraw(Coord, Coord, Coord, Coord);
private:
void Init(Interactor*, int h, int v);
};
class MarginFrame : public Frame {
public:
MarginFrame(Interactor* = nil, int margin = 0);
MarginFrame(const char*, Interactor* = nil, int margin = 0);
MarginFrame(Interactor*, int margin, int shrink, int stretch);
MarginFrame(Interactor*, int hmargin, int vmargin);
MarginFrame(Interactor*,
int hmargin, int hshrink, int hstretch,
int vmargin, int vshrink, int vstretch
);
protected:
virtual void Reconfig();
virtual void Resize();
virtual void Redraw(Coord, Coord, Coord, Coord);
protected:
int hmargin, hshrink, hstretch;
int vmargin, vshrink, vstretch;
private:
void Init(int, int, int, int, int, int);
};
#endif